var sql = null;
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
var msg = null;
var peticionespendientes = 0;
var pasos=null;


function initDB() {
	var msg;

	db.transaction(function(tx) {
				tx.executeSql('DROP TABLE IF EXISTS TRABAJOS');
				tx.executeSql('CREATE TABLE IF NOT EXISTS TRABAJOS (id_trabajo INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, id_webTrabajo, categoria_trabajo, puesto_trabajo, empresa, enlace, localidad, fecha)');
				tx.executeSql('INSERT INTO TRABAJOS (id_webTrabajo, categoria_trabajo, puesto_trabajo, empresa, enlace, localidad, fecha) VALUES (1, "Inform�tica y telecomunicaciones", "Programador ASP.NET", "Adecco", "https://www.infojobs.net/vitoria-gasteiz/programador-asp.net/of-i793304bfac4be9b75fdafe1810369e", "Vitoria-Gasteiz", "09/12/2013")');
				tx.executeSql('INSERT INTO TRABAJOS (id_webTrabajo, categoria_trabajo, puesto_trabajo, empresa, enlace, localidad, fecha) VALUES (1, "Inform�tica y telecomunicaciones", "Analista Programador VB", "Mensoft Consultores, S.L", "https://www.infojobs.net/vitoria-gasteiz/analista-programador-visual-basic.net/of-i6ebe7a731946c8894af6864e59fe8b", "Vitoria-Gasteiz", "12/12/2013")');
				tx.executeSql('INSERT INTO TRABAJOS (id_webTrabajo, categoria_trabajo, puesto_trabajo, empresa, enlace, localidad, fecha) VALUES (1, "Inform�tica y telecomunicaciones", "Analista Programador Nacar", "Clickitpoint", "https://www.infojobs.net/madrid/analista-programador-nacar/of-ia192f4bb17496b8fa668522a18ff1a", "Vitoria-Gasteiz", "13/12/2013")');
			});

	$("#contador").html("<H2>Trabajos encontrados: 3</H2>");
	$("#listado").empty();
	sacaEmpleos();
}
/** * FUNCION SACAR EMPLEOS **** */
function sacaEmpleos() {
	console.log(db.version);
	console.log("SACAEMPLEOS");
	//$("#status").html("");
	//document.querySelector('#pasos').innerHTML += "SACAEMPLEOS #";
	pasos+="SACAEMPLEOS #";
	db.transaction(function(tx) {
		tx.executeSql('SELECT * FROM TRABAJOS', [], function(tx, results) {
			var len = results.rows.length, i;
			$("#contador").html("<H2>Trabajos encontrados: " + len + "</H2>");
			$("#listado").before(msg);
			//document.querySelector('#status').innerHTML += msg;
			$("#listado").empty();
			for (i = 0; i < len; i++) {
				$(
						"<li class'ui-icon-arrow-r'><h4><a href='"
								+ results.rows.item(i).enlace + "'>"
								+ "<b> Puesto: </b>"
								+ results.rows.item(i).puesto_trabajo + "</h4>"
								+ "<b> Localidad: </b>"
								+ results.rows.item(i).localidad + "</li>")
						.appendTo("#listado");
			}
			//$("#listado").listview("refresh");
			$.mobile.navigate("#pageResult");
			$("#proceso").html("");
			
		}, null);
	});
	console.log(pasos);
	//$("#listado").listview("refresh");
}

/** ***************************************** */
/** ******** REGION UNIFICVADO ******** */
/** ***************************************** */
/* REGION IJ */
function successGIDB_IJ() {
	pendientesIJ--;
	console.log("pIJ:" + pendientesIJ);
	console.log("ppend:" + peticionespendientes);
	if (pendientesIJ == 0) {
		peticionespendientes--;
		console.log("ppend:" + peticionespendientes);
		if (peticionespendientes == 0
				|| pendientesJT == 0) {
			sacaEmpleos();
		}
	}
	console.log("bien");

}
function errorGIDB_IJ(tx, e) {
	console.log(e);
}

function guardaInfoDB_IJ(sql) {
 
	//document.querySelector('#pasos').innerHTML += "GUARDAINFODB_JR #";
	pasos+="GUARDAINFO_IJ #";
	console.log("GUARDAINFODB_IJ");
	db.transaction(function(tx) {
		tx.executeSql(sql, [], successGIDB_IJ, errorGIDB_IJ);
	});
}
/* fin REGION IJ */

/* REGION JR */
function successGIDB_JR() {
	pendientesJR--;
	console.log("pendJR:" + pendientesJR);
	console.log("ppend:" + peticionespendientes);
	if (pendientesJR == 0) {
		peticionespendientes--;
		console.log("ppend:" + peticionespendientes);
		if (peticionespendientes == 0
				|| pendientesJR == 0) {
			sacaEmpleos();
		}
	}
	console.log("bien");

}
function errorGIDB_JR(tx, e) {
	console.log(e);
}

function guardaInfoDB_JR(sql) {

	//document.querySelector('#pasos').innerHTML += "GUARDAINFODB_JR #";
	pasos+="GUARDAINFO_JR #";
	console.log("GUARDAINFODB_JR");
	db.transaction(function(tx) {
		tx.executeSql(sql, [], successGIDB_JR, errorGIDB_JR);
	});
}
/* fin REGION JT */


/* REGION JT */
function successGIDB_JT() {
	pendientesJT--;
	console.log("pjt:" + pendientesJT);
	console.log("ppend:" + peticionespendientes);
	if (pendientesJT == 0) {
		peticionespendientes--;
		console.log("ppend:" + peticionespendientes);
		if (peticionespendientes == 0
				|| pendientesJT == 0) {
			sacaEmpleos();
		}
	}
	console.log("bien");

}
function errorGIDB_JT(tx, e) {
	console.log(e);
}

function guardaInfoDB_JT(sql) {

	//document.querySelector('#pasos').innerHTML += "GUARDAINFODB_JT #";
	pasos+="GUARDAINFO_JT #";
	console.log("GUARDAINFODB_JT");
	db.transaction(function(tx) {
		tx.executeSql(sql, [], successGIDB_JT, errorGIDB_JT);
	});
}
/* fin REGION JT */

/* REGION IB */
function successGIDB_IB() {
	pendientesIB--;
	console.log("pib:" + pendientesIB);
	console.log("ppend:" + peticionespendientes);
	if (pendientesIB == 0) {
		peticionespendientes--;
		console.log("ppend:" + peticionespendientes);
		if (peticionespendientes == 0
				|| pendientesIB == 0) {
			sacaEmpleos();
		}
	}
	console.log("bien");

}
function errorGIDB_IB(tx, e) {
	console.log(e);
}

function guardaInfoDB_IB(sql) {

	//document.querySelector('#pasos').innerHTML += "GUARDAINFODB_IB #";
	pasos+="GUARDAINFO_IB #";
	//console.log("GUARDAINFODB_IB");
	db.transaction(function(tx) {
		tx.executeSql(sql, [], successGIDB_IB, errorGIDB_IB);
	});
}

/* fin REGION IB */
function consulta_ALL(obt, opc) {

	//document.querySelector('#pasos').innerHTML += "CONSULTA_JT #";
	pasos+="CONSULTA "+opc+" #";
	console.log("CONSULTA_ALL");
	console.log("opcion:" +opc);

	db
			.transaction(function(tx) {
				var sql = 'SELECT * FROM TRABAJOS ' + " Where Empresa='"
						+ obt.empresa + "'" + " AND localidad like '"
						+ obt.ciudad + "'" + " AND puesto_trabajo like '"
						+ obt.puesto + "'";
				tx.executeSql(
								sql,
								[],
								function(tx, results) {
									var len = results.rows.length, i;
									if (len == 0) {

										sql = "INSERT INTO TRABAJOS (id_webTrabajo, categoria_trabajo, puesto_trabajo, empresa, enlace, localidad, fecha) VALUES ("
												+ opc +", null,"
												+ "'"
												+ obt.puesto
												+ "', '"
												+ obt.empresa
												+ "', '"
												+ obt.enlace
												+ "', '"
												+ obt.ciudad
												+ "', '"
												+ obt.fechaPub + "')";
										switch (opc) {
										case 1:
											console.log("guardaJT");
											guardaInfoDB_JT(sql);
											break;
										case 2:
											console.log("guardaIB");
											guardaInfoDB_IB(sql);
											break;
										case 3:
											console.log("guardaJR");
											guardaInfoDB_JR(sql);
											break;
										case 4:
											console.log("guardaIJ");
											guardaInfoDB_IJ(sql);
											break;
										}

									} else {

										switch (opc) {
										case 1:
											console.log("reduPdtesJT");
											pendientesJT--;
											break;
										case 2:
											console.log("reduPdtesIB");
											pendientesIB--;
											break;
										case 3:
											console.log("reduPdtesJR");
											pendientesJR--;
											break;
										case 4:
											console.log("reduPdtesIJ");
											pendientesIJ--;
											break;
										}
									}
									switch (opc) {
									case 1:
										console.log("pjt:" + pendientesJT);
										if (pendientesJT == 0) {
											peticionespendientes--;
										}
										console.log("PPEND: " +peticionespendientes);
										if (peticionespendientes == 0
												|| pendientesJT == 0) {
											sacaEmpleos();
										}
										break;
									case 2:
										console.log("pib:" + pendientesIB);
										if (pendientesIB == 0) {
											peticionespendientes--;
										}
										console.log("PPEND: " +peticionespendientes);
										if (peticionespendientes == 0
												|| pendientesIB == 0) {
											sacaEmpleos();
										}
										break;
									case 3:
										console.log("pjr:" + pendientesJR);
										if (pendientesJR == 0) {
											peticionespendientes--;
										}
										console.log("PPEND: " +peticionespendientes);
										if (peticionespendientes == 0
												|| pendientesJR == 0) {
											sacaEmpleos();
										}
										break;
									case 4:
										console.log("pij:" + pendientesIJ);
										if (pendientesIJ == 0) {
											peticionespendientes--;
										}
										console.log("PPEND: " +peticionespendientes);
										if (peticionespendientes == 0
												|| pendientesIJ == 0) {
											sacaEmpleos();
										}
										break;
									}

								}, null);
			});
}

function GuardaEmpleos_ALL(obj,opc) {
	array = new Array();
	array = $.makeArray(obj);
	console.log("GUARDAEMPLEOS_ALL #");

	//document.querySelector('#pasos').innerHTML += "GUARDAEMPLEOS_ALL #";
	pasos+="GUARDAEMPLEOS_ALL #";
	j = 0;
	switch (opc) {
	case 1:
		pendientesJT += array.length;
		break;
	case 2:
		pendientesIB += array.length;
		break;
	case 3:
		pendientesJR += array.length;
		break;
	case 4:
		pendientesIJ += array.length;
		break;
	}
	
	for (j = 0; j < array.length; j++) {

		consulta_ALL(array[j], opc);
		console.log("trabajando con empleo: " + j);

	}
}

/** ***************************************** */
/** ********** fin REGION Ubnificadop ******************** */
/** ***************************************** */

